package it.unicam.cs.cosy.bioshape.core.components;


//Estende la classe ServiceAgent     ?? non me pare
/**
 * Organises diffused grouped entities.
 * 
 * @author Carmine
 * 
 */
public class GroupedEntityCoordinator {
	// VAR ISTANZA DERIVANTE DALLA RELAZIONE TRA CLASSI
	private GroupedEntity[] entities;

	/**
	 * 
	 * @param set
	 *            a {@link GroupedEntity} Set
	 */
	public GroupedEntityCoordinator(GroupedEntity set[]) {
		// SETTO LE VARIABILI DATE IN INPUT
		this.entities = set;
	}

	/**
	 * 
	 * @return a {@link GroupedEntity} Array
	 */
	public GroupedEntity[] getGroupedEntity() {
		return entities;
	}

	/**
	 * Metodo che restituisce un particolare tipo di entità diffuse in base al
	 * parametro in input che ne identifica il nome
	 * 
	 * @param name
	 *            a distinguishing {@link GroupedEntity} name
	 * 
	 * @return the {@link GroupedEntity} type whit the distinguishing
	 *         {@link GroupedEntity} name
	 */
	public GroupedEntity getGroupedEntity(String name) {
		// SCORRO LE ENTITA' DIFFUSE E CERCO QUELLE CHE SI CHIAMANO COME IL
		// PARAMETRO IN INPUT
		for (int i = 0; i < entities.length; i++) {
			if (entities[i].getName().equals(name))
				return entities[i];
		}
		// SE NON TROVATO RITORNA NULL
		return null;
	}

	//Metodo per impostare tutti i tipi di entità diffuse
	/**
	 * Sets all the diffused grouped entities types. 
	 * 
	 * @param set a {@link GroupedEntity} Array
	 */
	public void setGroupedEntity(GroupedEntity[] set) {
		entities = set;
	}
}
